92de94906fc6e467302fb06ec6e75f81e9f66321,src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java,TestRegexWildcardIndex,indexRegexCaseInsensitive,#,163

Before Change


        ki.commit();

        QueryBuilder kq = new QueryBuilder("base");
        SpanQuery sq = kq.re("s:Af*e", true).toQuery();
        assertEquals("SpanMultiTermQueryWrapper(base:/i:af*e/)", sq.toString());

        Krill ks = new Krill(sq);
        ks.getMeta().getContext().left.setToken(true).setLength(1);
        ks.getMeta().getContext().right.setToken(true).setLength(1);

        Result kr = ki.search(ks);
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
        assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)
                .getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:Af.*e")
                .toQuery()));
        assertEquals((long) 1, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:baum.*",
                true).toQuery()));
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... aFfFE [Baum] Baumgarten ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(1)
                .getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re(
                "s:.*garten", true).toQuery()));
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... Baumgarten [SteinGarten] franZ ...", kr.getMatch(1)
                .getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re(
                "s:.*garten", false).toQuery()));
        assertEquals((long) 1, kr.getTotalResults());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
                .getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:ha.s",
                true).toQuery()));
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... franZ [HaNs] Haus ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... HaNs [Haus] Efeu ...", kr.getMatch(1)
                .getSnippetBrackets());

        kr = ki.search(ks.setSpanQuery(new QueryBuilder("base").re("s:.*f*e",
                true).toQuery()));
        assertEquals((long) 3, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
        assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)

After Change



    @Test
    public void indexRegexCaseInsensitive () throws Exception {
        KrillIndex ki = new KrillIndex();

        // abcabcabac
        FieldDocument fd = new FieldDocument();
        fd.addTV(
                "base",
                "AfFe aFfFE Baum Baumgarten SteinGarten franZ HaNs Haus Efeu effe",
                "[(0-4)s:AfFe|i:affe|_0$<i>0<i>4|-:t$<i>10]"
                        + "[(5-10)s:aFfFE|i:afffe|_1$<i>5<i>10]"
                        + "[(11-15)s:Baum|i:baum|_2$<i>11<i>15]"
                        + "[(16-26)s:Baumgarten|i:baumgarten|_3$<i>16<i>26]"
                        + "[(27-38)s:SteinGarten|i:steingarten|_4$<i>27<i>38]"
                        + "[(39-44)s:franZ|i:franz|_5$<i>39<i>44]"
                        + "[(45-49)s:HaNs|i:hans|_6$<i>45<i>49]"
                        + "[(50-54)s:Haus|i:haus|_7$<i>50<i>54]"
                        + "[(55-59)s:Efeu|i:efeu|_8$<i>55<i>59]"
                        + "[(60-64)s:effe|i:effe|_9$<i>60<i>64]");
        ki.addDoc(fd);

        ki.commit();

        QueryBuilder kq = new QueryBuilder("base");
        SpanQueryWrapper sqw = kq.re("s:Af*e", true);
        assertEquals("SpanMultiTermQueryWrapper(base:/i:af*e/)", sqw.toQuery().toString());

        Krill ks = _newKrill(sqw);
        Result kr = ki.search(ks);
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
        assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)
                .getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re("s:Af.*e"));
        kr = ki.search(ks);
        assertEquals((long) 1, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re("s:baum.*",
                                                   true));
        kr = ki.search(ks);
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... aFfFE [Baum] Baumgarten ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(1)
                .getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re(
                                                   "s:.*garten", true));
        kr = ki.search(ks);
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... Baumgarten [SteinGarten] franZ ...", kr.getMatch(1)
                .getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re("s:.*garten", false));
        kr = ki.search(ks);
        assertEquals((long) 1, kr.getTotalResults());
        assertEquals("... Baum [Baumgarten] SteinGarten ...", kr.getMatch(0)
                .getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re("s:ha.s",
                                                   true));
        kr = ki.search(ks);
        assertEquals((long) 2, kr.getTotalResults());
        assertEquals("... franZ [HaNs] Haus ...", kr.getMatch(0)
                .getSnippetBrackets());
        assertEquals("... HaNs [Haus] Efeu ...", kr.getMatch(1)
                .getSnippetBrackets());

        ks = _newKrill(new QueryBuilder("base").re("s:.*f*e",
                                                   true));
        kr = ki.search(ks);
        assertEquals((long) 3, kr.getTotalResults());
        assertEquals("[AfFe] aFfFE ...", kr.getMatch(0).getSnippetBrackets());
        assertEquals("AfFe [aFfFE] Baum ...", kr.getMatch(1)